import { FormRules } from "element-plus";

/**
 * 分页查询参数
 */
export declare interface PageQuery {
  pageNum: number;
  pageSize: number;
}

/**
 * 基础实体属性
 */
export declare interface BaseEntity {
  createBy?: any;
  createTime?: string;
  updateBy?: any;
  updateTime?: any;
}

/**
 * 分页请求返回的基础数据
 */
export declare interface BasePageResponse<T> {
  /**
   * 状态码
   */
  code: number;
  /**
   * 返回消息
   */
  msg: string | null;
  /**
   * 行数
   */
  total: number;
  /**
   * 数据
   */
  rows: Array<T> | null;
}

/**
 * Promise封装的分页请求
 */
export type PromisePageResponse<T = any> = Promise<BasePageResponse<T>>;

/**
 * 请求返回的基础数据
 */
export declare interface BaseResponse<T> {
  /**
   * 状态码
   */
  code: number;
  /**
   * 返回消息
   */
  msg: string | null;
  /**
   * 数据
   */
  data: T | null;
}

/**
 * 封装的Promise请求
 */
export type PromiseResponse<T = any> = Promise<BaseResponse<T>>;

/**
 * 分页数据
 * T : 表单数据
 * D : 查询参数
 */
export declare interface PageData<T, D> {
  form: T;
  queryParams: D;
  rules: FormRules;
}
